package com.yang.utils;

import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import com.yang.pojo.vo.PrimaryKeyPojo;

/**
 * 
 * @author 张恒阳
 *
 */
public class PojoUtils {
	/**
	 * 判断两pojo
	 * 
	 * @param t
	 * @param v
	 * @return
	 */
	public static <T, V> Boolean equesPojo(T t, V v) {
		if (t == null || v == null) {
			return false;
		}
		// 直接判断字节码位置
		if (!t.getClass().equals(v.getClass())) {
			return false;
		}
		return t.equals(v);
	}

	/**
	 * 去除重复pojoID
	 * 
	 * @param t
	 * @param v
	 * @return
	 */
	public static void distinctPojoById(List<PrimaryKeyPojo> list) {
		if (CollectionUtil.isNotBlank(list)) {
			//对null不排除
			HashSet<String> set = new HashSet<>();
			for (Iterator<PrimaryKeyPojo> iterator = list.iterator(); iterator.hasNext();) {
				PrimaryKeyPojo pojo = iterator.next();
				if (!set.add(String.valueOf(pojo.getPrimaryKey()))) {
					// 已存在 删除 从list 去除
					iterator.remove();
				}
			}
		}
	}
	/**
	 * 去除重复pojoID
	 * 
	 * @param t
	 * @param v
	 * @return
	 */
	public static void distinctPojoAndRemoveNullById(List<PrimaryKeyPojo> list) {
		if (CollectionUtil.isNotBlank(list)) {
			//对null不排除
			HashSet<Integer> set = new HashSet<>();
			for (Iterator<PrimaryKeyPojo> iterator = list.iterator(); iterator.hasNext();) {
				PrimaryKeyPojo pojo = iterator.next();
				if(pojo.getPrimaryKey()==null){
					iterator.remove();
					continue;
				}
				if (!set.add(pojo.getPrimaryKey())) {
					// 已存在 删除 从list 去除
					iterator.remove();
				}
			}
		}
	}


}
